共计 909 个字符,预计需要花费 3 分钟才能阅读完成。
- 上代码
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
// 屏蔽控制台应用程序显示
// #pragma comment(linker, "/SUBSYSTEM:windows /ENTRY:mainCRTStartup")
// 通过窗口名称获取句柄
HWND GetWindowHandleByTitle(char* title)
{return FindWindowA(NULL, title);
}
// 通过窗口类名获取句柄
HWND GetWindowHandleByClassName(char* className)
{return FindWindowA(className, NULL);
}
// 移动窗口的位置
void MoveWindowByPosition(HWND hWnd, int x, int y)
{SetWindowPos(hWnd, NULL, x, y, 0, 0, SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE);
}
// 主程序入口
int main()
{//HWND hWnd = GetWindowHandleByTitle(" 无标题 - Notepad"); // 窗口名称获取
HWND hWnd = GetWindowHandleByClassName("WeChatMainWndForPC"); // 窗口类名获取
if (hWnd != NULL) {
// 窗口句柄获取成功, 需要进行的操作
printf(" 获取到窗口句柄:%p\n",hWnd);
// SendMessage(hWnd, WM_CLOSE, 0, 0); // 关闭窗口消息
for (size_t i = 0; i < 100; i++)
{int x = rand() % 200 + 10;
int y = rand() % 300 - 50;
MoveWindowByPosition(hWnd, x, y); // 将窗口移动到 (100, 100) 位置
Sleep(500);
}
}
else {
// 窗口句柄获取失败
printf(" 窗口句柄获取失败 ");
}
return 0;
}
该程序屏蔽了命令行(Dos)窗口显示,通过 windows 窗口类名获取到运行程序的句柄,拿到句柄之后发送了窗口移动指令。
正文完